package com.arpa.wms.domain.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 盘点补录登记DTO
 */
@Data
@ApiModel(value="盘点补录登记信息", description="盘点补录登记DTO")
public class CountingSupplementRegisterDTO {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "盘点任务号",required = true)
    @NotBlank(message = "盘点任务号不能为空")
    private String taskCode;

    @ApiModelProperty(value = "盘点单号",required = true)
    @NotBlank(message = "盘点单号不能为空")
    private String countingCode;

    @ApiModelProperty(value = "货主编码",required = true)
    @NotBlank(message = "货主不能为空")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称",required = true)
    @NotBlank(message = "货主不能为空")
    private String shipmentName;

    @ApiModelProperty(value = "库位标识",required = true)
    @NotBlank(message = "库位标识不能为空")
    private String location;

    @ApiModelProperty(value = "库位码",required = true)
    @NotBlank(message = "库位码不能为空")
    private String locationName;



    @ApiModelProperty(value = "盘点数量",required = true)
    @NotNull(message = "盘点数量不能为空")
    private BigDecimal countingQuantity;

    @ApiModelProperty(value = "库区")
    private String warehouseSpaceCode;

    @ApiModelProperty(value = "库区名称")
    private String warehouseSpaceName;

    @ApiModelProperty(value = "商品标识",required = true)
    @NotNull(message = "商品标识不能为空")
    private String goodsCode;

    @ApiModelProperty(value = "商品编码",required = true)
    @NotNull(message = "商品编码不能为空")
    private String goodCode;

    @ApiModelProperty(value = "商品名称",required = true)
    @NotNull(message = "商品名称不能为空")
    private String goodsName;

    @ApiModelProperty(value = "商品条码",required = true)
    @NotNull(message = "商品条码不能为空")
    private String goodsBarCode;


    @ApiModelProperty(value = "单位标识",required = true)
    @NotNull(message = "单位标识不能为空")
    private String goodsUnit;

    @ApiModelProperty(value = "单位名称",required = true)
    @NotNull(message = "单位名称不能为空")
    private String goodsUnitName;

    @ApiModelProperty(value = "规格")
    private String spec;

    @ApiModelProperty(value = "生产日期")
    private LocalDateTime gmtManufacture;

    @ApiModelProperty(value = "过期日期")
    private LocalDateTime gmtExpire;

    @ApiModelProperty(value = "存货日期")
    private LocalDateTime gmtStock;

    @ApiModelProperty(value = "批次号")
    private String lot;

    @ApiModelProperty(value = "收货批次号")
    private String receiveLot;

    @ApiModelProperty(value = "供应商")
    private String supplier;

    @ApiModelProperty(value = "序列号")
    private String serialNumber;

    @ApiModelProperty(value = "扩展1")
    private String extendOne;

    @ApiModelProperty(value = "扩展2")
    private String extendTwo;

    @ApiModelProperty(value = "扩展3")
    private BigDecimal extendThree;

    @ApiModelProperty(value = "扩展4")
    private BigDecimal extendFour;

    @ApiModelProperty(value = "扩展5")
    private LocalDateTime extendFive;

    @ApiModelProperty(value = "扩展6")
    private LocalDateTime extendSix;

    @ApiModelProperty(value = "库存状态标识",required = true)
    @NotNull(message = "库存状态标识不能为空")
    private String goodsStatus;

    @ApiModelProperty(value = "库存状态名称",required = true)
    @NotNull(message = "库存状态名称不能为空")
    private String goodsStatusName;

    @ApiModelProperty(value = "容器号")
    private String containerBarCode;

}
